home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / jabber / objects / si.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-13  |  2KB  |  51 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. from pyxmpp.xmlextra import get_node_ns_uri
  5. from pyxmpp.utils import to_utf8
  6. import libxml2
  7. from pyxmpp.objects import StanzaPayloadObject
  8. SI_NS = 'http://jabber.org/protocol/si'
  9.  
  10. class SI(StanzaPayloadObject):
  11.     xml_element_name = 'si'
  12.     xml_element_namespace = SI_NS
  13.     
  14.     def __init__(self, xmlnode_or_id = None, mime_type = None, profile_ns = None):
  15.         if isinstance(xmlnode_or_id, libxml2.xmlNode):
  16.             self._SI__from_xml(xmlnode_or_id)
  17.         else:
  18.             self.sid = xmlnode_or_id
  19.             self.mime_type = mime_type
  20.             self.profile_ns = profile_ns
  21.  
  22.     
  23.     def __from_xml(self, node):
  24.         if node.type != 'element':
  25.             raise ValueError, 'XML node is not an si (not en element)'
  26.         
  27.         ns = get_node_ns_uri(node)
  28.         if ns or ns != SI_NS or node.name != self.xml_element_name:
  29.             raise ValueError, 'XML node is not an si'
  30.         
  31.         sid = node.prop('id')
  32.         self.sid = None if sid else None
  33.         mime_type = node.prop('mime-type')
  34.         self.mime_type = None if mime_type else None
  35.         profile_ns = node.prop('profile')
  36.         self.profile_ns = None if profile_ns else None
  37.  
  38.     
  39.     def complete_xml_element(self, xmlnode, _unused):
  40.         xmlnode.setProp('id', to_utf8(self.sid))
  41.         None if self.mime_type else None
  42.         None if self.profile_ns else None
  43.  
  44.     
  45.     def from_iq(cls, iq):
  46.         return cls(iq.xpath_eval('si:si', {
  47.             'si': SI_NS })[0])
  48.  
  49.     from_iq = classmethod(from_iq)
  50.  
  51.